package com.xunmeng.chapter1;

import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.StandardCharsets;

import static com.xunmeng.chapter1.ByteBufferUtil.debugAll;

public class TestByteBufferString {
    public static void main(String[] args) {
        // 方法1
        // 字符串转为ByteBuffer
        ByteBuffer buffer=ByteBuffer.allocate(16);
        buffer.put("hello".getBytes(StandardCharsets.UTF_8));
        debugAll(buffer);

        // 方法2
        // Charset，自动将buffer切换到读模式
        ByteBuffer buffer2 = StandardCharsets.UTF_8.encode("hello");
        debugAll(buffer2);

        // 方法3
        // wrap,自动将buffer切换到读模式
        ByteBuffer buffer3 = ByteBuffer.wrap("hello".getBytes(StandardCharsets.UTF_8));
        debugAll(buffer3);


        // buffer转字符串，前提是buffer已经切换到了读模式
        ByteBuffer buffer4 = StandardCharsets.UTF_8.encode("你好");
        CharBuffer decode1 = StandardCharsets.UTF_8.decode(buffer4);
        System.out.println("结果=>"+decode1.toString());


        buffer.flip();
        CharBuffer decode = StandardCharsets.UTF_8.decode(buffer);
        System.out.println("结果=>"+decode.toString());


    }
}
